package com.itheima.reggie.dto;

import com.itheima.reggie.entity.Dish;
import com.itheima.reggie.entity.DishFlavor;
import lombok.Data;
import lombok.ToString;

import java.util.ArrayList;
import java.util.List;

/**
 * Dto数据传输模型，一般用于展示层和业务层之间的数据传输。
 * 可以解决数据库一张表里又用了另外一张表的问题，采用继承的方式即可。
 */
@Data
@ToString(callSuper = true)//这个注解的意思是父类的变量也会在子类的toString中。
public class DishDto extends Dish {
    //得把这个集合new出来，初始容量为零，后面用的时候就可以直接赋值了。如果初始化默认值为null，就会出现空指针异常。
    //在Dto里定义dishFlavorList，就可以有两张表了，一张dish和一张DishFlavor。
    //为什么是集合，因为前端传递过来的口味有多种。
    private List<DishFlavor> flavors = new ArrayList<>();//new了之后，是｛｝的意思。不会是null

    //前端接受菜品分类的变量名为categoryName，但是传回后面对象里面的数据没有这个，所以不能在dish里设置这个变量
    private String categoryName;
}
